/**
 * @description API接口统一管理
 */
import env from './env';

/**
 * @description API接口前缀
 * @type {String}
 */
const API_PREFIX = '/api';

/**
 * 完整接口地址
 * @param {String} path 接口路径
 * @return {String} 完整接口地址
 */
const getFullPath = (path) => {
  // 如果是完整URL，则直接返回
  if (path.startsWith('http://') || path.startsWith('https://')) {
    return path;
  }
  // 否则拼接基础URL和路径
  const baseUrl = env.baseUrl;
  const apiPath = path.startsWith('/') ? path : `/${path}`;
  return `${baseUrl}${API_PREFIX}${apiPath}`;
};

// RunningHub API配置
export const runningHub = {
  baseUrl: 'https://runninghub.cn', // 使用本地代理服务器
  apiKey: '4067f5cbd5da40359602adaa342ab82c', // RunningHub API Key
  task: {
    // ComfyUI任务相关
    createTaskSimple: '/task/openapi/createTask', // 发起ComfyUI任务(简易)
    createTaskAdvanced: '/task/openapi/createTaskAdvanced', // 发起ComfyUI任务(高级)
    createTaskWebhook: '/task/openapi/createTaskWebhook', // 发起ComfyUI任务(webhook)
    getWorkflow: '/api/openapi/getJsonApiFormat', // 获取工作流Json
    queryTaskStatus: '/task/openapi/queryTaskStatus', // 查询任务状态
    queryTaskResult: '/task/openapi/queryTaskResult', // 查询任务生成结果
    cancelTask: '/task/openapi/cancelTask', // 取消ComfyUI任务
    getAccountInfo: '/uc/openapi/accountStatus', // 获取账户信息
    uploadResource: '/task/openapi/uploadResource', // 上传资源
    getLoraUploadUrl: '/task/openapi/getLoraUploadUrl', // 获取Lora上传链接
    getWebhookDetail: '/task/openapi/getWebhookDetail', // 获取webhook事件详情
    resendWebhook: '/task/openapi/resendWebhook', // 重新发送指定webhook事件
    // API v1 接口
    upload: '/task/openapi/upload', // 上传图片
    createComfyUI: '/task/openapi/v1/create', // 创建ComfyUI任务
    queryStatus: '/task/openapi/v1/status', // 查询任务状态
    getResult: '/task/openapi/v1/result', // 获取任务结果
    cancel: '/task/openapi/v1/cancel', // 取消任务
    getWorkflowJson: '/api/openapi/getJsonApiFormat', // 获取工作流JSON
  }
};

// 用户相关接口
export const user = {
  login: getFullPath('/user/login'), // 登录
  register: getFullPath('/user/register'), // 注册
  info: getFullPath('/user/info'), // 获取用户信息
  update: getFullPath('/user/update'), // 更新用户信息
  logout: getFullPath('/user/logout'), // 退出登录
};

// 商品相关接口
export const goods = {
  list: getFullPath('/goods/list'), // 商品列表
  detail: getFullPath('/goods/detail'), // 商品详情
  category: getFullPath('/goods/category'), // 商品分类
};

// 订单相关接口
export const order = {
  create: getFullPath('/order/create'), // 创建订单
  list: getFullPath('/order/list'), // 订单列表
  detail: getFullPath('/order/detail'), // 订单详情
  cancel: getFullPath('/order/cancel'), // 取消订单
  pay: getFullPath('/order/pay'), // 支付订单
};

// 上传接口
export const upload = {
  image: env.uploadUrl, // 图片上传
};

// 将所有接口统一导出
export default {
  user,
  goods,
  order,
  upload,
  runningHub
}; 